/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package memory;

import java.io.FileNotFoundException;
import java.io.PrintWriter;

/**
 *
 * @author Oscar
 */
public class Gestora {
    
    private Jugador jugador;
    private Partida partida;
    private Puntuacion puntuacion = new Puntuacion();
    GuardarDatos gd = new GuardarDatos();

    public Puntuacion getPuntuacion() {
        return puntuacion;
    }

    public Gestora() {
    }
    
    public void crearJugador(String n){
        
        puntuacion.guardaJugador(new Jugador(n));
    }
    
    public void recuperarNombres(){
        
        puntuacion = GuardarDatos.recuperarNombresObject();        
    }
    
    public String[] devuelveNombresUsados(){        
        
        String[] devolver = new String[puntuacion.size()];
            int i = 0;
            for(Jugador j:puntuacion){
                
                devolver[i] = j.getNombre();
                i++;
            }
        
        return devolver;
    }
    
    public void guardarNombre(String n){
        PrintWriter pw = null;
        
        
        try{
            pw = new PrintWriter("Jugadores.txt");
           
            
               
                pw.println(n + " " + 0);
            
            
        pw.flush(); 
                    
        }catch(FileNotFoundException e){
            
            System.out.println(e.getMessage());
        }finally{
            
            pw.close();            
        }
        puntuacion.guardaJugador(new Jugador(n));
    }
    public boolean guardarNombres(){        
        
        return GuardarDatos.guardarNombresObject(puntuacion);
    }  
    
    public boolean guardarExternoChooser(){
        
        return GuardarDatos.guardarBien(puntuacion);
    }    
    
    public void recuperarNombresObject(){
        
        puntuacion = GuardarDatos.recuperarNombresObject();
        
    }
    
    
    public void guardarPuntuacion(int puntos,int intentos){
        
        
        jugador.setPuntuacion(puntos/intentos);
        puntuacion.remove(puntuacion.devuelveJugador(jugador.getNombre()));
        puntuacion.guardaJugador(jugador); 
    }   
    
    public Jugador getJugador() {
        return jugador;
    }

    public void setJugador(Jugador jugador) {
        this.jugador = jugador;
    }

    public Partida getPartida() {
        return partida;
    }

    public void setPartida(Partida partida) {
        this.partida = partida;
    }
    
    public void iniciarPartida(Tema t,Dificultad d){       
        
        this.partida = new Partida(d,t);
    }
    
}
